#include "dialognewuser.h"
#include "ui_dialognewuser.h"
#include <QMessageBox>
#include <QSqlTableModel>
#include <QDebug>
DialogNewUser::DialogNewUser(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DialogNewUser)
{
    ui->setupUi(this);
    setAttribute(Qt::WA_DeleteOnClose,true);
    setModal(true);
}

DialogNewUser::~DialogNewUser()
{
    delete ui;
    qDebug()<<__FUNCTION__;
}

void DialogNewUser::on_pushButtonConfirm_clicked()
{
    //1.判断用户名是否为空
    //2.对比两次密码是否一致
    //3.两次密码一致后把用户名和密码存入数据库中
    if(ui->lineEditUserName->text().isEmpty()){
        QMessageBox msgBox(this);
        msgBox.setText("用户名不能为空！");
        msgBox.exec();
    }else{
        if(ui->lineEditNewPassword->text().isEmpty()){
            QMessageBox msgBox(this);
            msgBox.setText("密码不能为空！");
            msgBox.exec();
        }else{
            if(ui->lineEditConfirm->text() == ui->lineEditNewPassword->text()){//如果两次密码一致，将用户信息存入数据库中
                QSqlTableModel *model = new QSqlTableModel();
                model->setTable("user");
                model->select();
                int rowNum = model->rowCount(); //获得表的行数,(读回来的rowNum是0,为上一个×××××错误×××××(加上上一句model->select();解决了这个问题)，但是数据也能插进去)
                qDebug()<<rowNum;
                int id = rowNum+1;
                model->insertRow(rowNum); //添加一行
                model->setData(model->index(rowNum,0),id);//给数据库中的ID字段赋值
                model->setData(model->index(rowNum,1),ui->lineEditUserName->text());
                model->setData(model->index(rowNum,2),ui->lineEditConfirm->text());
                model->submitAll(); //可以直接提交
                emit AddUserSuccess();//在这里应该发射一个信号给setparadialog，让setparadialog刷新一下显示内容
                this->close();
            }else{//如果两次密码不一致
                QMessageBox msgBox(this);
                msgBox.setText("两次输入密码不一致，请重新输入！");
                msgBox.exec();
            }
        }
    }
}
